var temp;
var favs;

/*
 * Funkcja pobiera informację o ulubionych lokalizacjach. W przypadku gdy użytkownik posiada swoje ulubione miejsca zostaje
 * wywowałana funkcja odpowiedzialna za pobranie nazw ulubionych lokalizacji
 */
function getFavourites() {
	$.ajax({
		type : 'POST',
		dataType : 'json',
		url : 'index.php?r=data/getFavourites',
		success : function(data, textStatus, jqXHR) {
			if (data!='guest') {
				favs=data[0]['favourites'];
				if (favs!='brak')
					favs=favs.slice(0, -1)
				getFavouritesNames();
			}
			else
				document.getElementById('addFav').style.display='none';
		},
		error : function(data, textStatus, jqXHR) {
			alert('1');
		},
		dataType : 'json'
	});
}

/*
 * funkcja pobiera nazwy ulubionych lokalizacji
 */
function getFavouritesNames() {
	if (favs!='brak')
		$.ajax({
			type : 'POST',
			dataType : 'json',
			url : 'index.php?r=data/getFavouritesNames',
			data : { range: favs },
			success : function(data, textStatus, jqXHR) {
				for (i=0; i<data.length; i++) {
					var newDiv = document.createElement('div');
					newDiv.id = 'favourite_' + data[i]['id'];
					document.getElementById('favs').appendChild(newDiv);
					var newElement = document.createElement('span');
					newElement.textContent = data[i]['title'];
					var newElement2 = document.createElement('img');
					newElement2.setAttribute('src', 'images/delete.png');
					newElement2.setAttribute('alt', 'delete');
					newElement2.setAttribute('align', 'middle');
					newElement2.style.cursor='pointer';
					newElement2.setAttribute('onclick', 'deleteFavourite('+data[i]['id']+',\''+data[i]['title']+'\');');
					var newElement3 = document.createElement('img');
					newElement3.setAttribute('src', 'images/zoom.png');
					newElement3.setAttribute('alt', 'zoom');
					newElement3.setAttribute('align', 'middle');
					newElement3.style.cursor='pointer';
					newElement3.setAttribute('onclick', 'fitBounds('+data[i]['latitude']+','+data[i]['longitude']+');changePanelInfo(\''+data[i]['title']+'\');');
					document.getElementById('favourite_' + data[i]['id']).appendChild(newElement);
					document.getElementById('favourite_' + data[i]['id']).innerHTML += '&nbsp;';
					document.getElementById('favourite_' + data[i]['id']).appendChild(newElement3);
					document.getElementById('favourite_' + data[i]['id']).innerHTML += '&nbsp;';
					document.getElementById('favourite_' + data[i]['id']).appendChild(newElement2);
				}
			},
			error : function(data, textStatus, jqXHR) {
				alert('2');
			},
			dataType : 'json'
		});
}

/*
 * Funkcja dodająca nową lokalizację do ulubionych
 * 
 * id - id lokalizacji
 * title - nazwa lokalizacji
 */
function addFavourite(id,title) {
	$.ajax({
		type : 'POST',
		dataType : 'json',
		url : 'index.php?r=data/addFavourite',
		data : {fav : id },
		success : function(data, textStatus, jqXHR) {
			var newDiv = document.createElement('div');
			newDiv.id = 'favourite_' + id;
			newDiv.setAttribute('style','display:none');
			document.getElementById('favs').appendChild(newDiv);
			var newElement = document.createElement('span');
			newElement.textContent = title;
			var newElement2 = document.createElement('img');
			newElement2.setAttribute('src', 'images/delete.png');
			newElement2.setAttribute('alt', 'delete');
			newElement2.setAttribute('align', 'middle');
			newElement2.style.cursor='pointer';
			newElement2.setAttribute('onclick', 'deleteFavourite('+id+',\''+title+'\');');
			var newElement3 = document.createElement('img');
			newElement3.setAttribute('src', 'images/zoom.png');
			newElement3.setAttribute('alt', 'zoom');
			newElement3.setAttribute('align', 'middle');
			newElement3.style.cursor='pointer';
			newElement3.setAttribute('onclick', 'fitBounds('+data[0]['latitude']+','+data[0]['longitude']+');changePanelInfo(\''+data[i]['title']+'\');');
			document.getElementById('favourite_' + id).appendChild(newElement);
			document.getElementById('favourite_' + id).innerHTML += '&nbsp;';
			document.getElementById('favourite_' + id).appendChild(newElement3);
			document.getElementById('favourite_' + id).innerHTML += '&nbsp;';
			document.getElementById('favourite_' + id).appendChild(newElement2);
			$('#favourite_' + id).slideDown(1500);
			checkFavourite(id,title);
		},
		error : function(data, textStatus, jqXHR) {
			alert(data);
		}
	});
	
}

/*
 * Funkcja usuwa ulubioną lokalizację
 * 
 * id - id lokalizacji
 * title - nazwa lokalizacji
 */
function deleteFavourite(id,title) {
	$.ajax({
		type : 'POST',
		dataType : 'json',
		url : 'index.php?r=data/deleteFavourite',
		data : {fav : id },
		success : function(data, textStatus, jqXHR) {
			$('#favourite_' + id).slideUp('slow', function(){
				$('#favourite_' + id).remove();
			});
			if (document.getElementsByClassName('add_favourite_'+id).length>0)
				checkFavourite(id,title);
		},
		error : function(data, textStatus, jqXHR) {
			alert('favs: 99');
		},
		dataType : 'json'
	});
}

/*
 * Funkcja sprawdza czy lokalizacja należy do ulubionych - w zależności od tego wyświetlana jest pusta, 
 * albo wypełniona gwiazdka
 * 
 * id - id lokalizacji
 * title - nazwa lokalizacji
 */
function checkFavourite(id,title) {
	$.ajax({
		type : 'POST',
		dataType : 'json',
		url : 'index.php?r=data/checkFavourite',
		data : {fav : id},
		success : function(data, textStatus, jqXHR) {
			if (data!='guest') {
				if (data=='brak') {
					document.getElementById('addFav').setAttribute('onclick', 'addFavourite('+id+',\''+title+'\');');
					document.getElementById('addFav').style.backgroundImage='url(\'images/off-star.png\')';
					document.getElementById('addFav').setAttribute('class','add_favourite_'+id);
					document.getElementById('addFav').setAttribute('alt', 'dodaj do ulubionych');
					document.getElementById('addFav').style.cursor='pointer';
					document.getElementById('addFav').onmouseover=function(){
						this.style.backgroundImage='url(\'images/on-star.png\')';
					};
					document.getElementById('addFav').onmouseout=function(){
						this.style.backgroundImage='url(\'images/off-star.png\')';
					};
				}
				else if (data=='jest') {
					document.getElementById('addFav').removeAttribute('onclick');
					document.getElementById('addFav').style.backgroundImage='url(\'images/on-star.png\')';
					document.getElementById('addFav').style.cursor='default';
					document.getElementById('addFav').setAttribute('class','add_favourite_'+id);
					document.getElementById('addFav').setAttribute('alt', 'już dodane do ulubionych');
				}
				else if (data=='pusty') {
					document.getElementById('addFav').setAttribute('onclick', 'addFavourite('+id+',\''+title+'\');');
					document.getElementById('addFav').style.backgroundImage='url(\'images/off-star.png\')';
					document.getElementById('addFav').setAttribute('class','add_favourite_'+id);
					document.getElementById('addFav').setAttribute('alt', 'dodaj do ulubionych');
					document.getElementById('addFav').style.cursor='pointer';
					document.getElementById('addFav').onmouseover=function(){
						this.style.backgroundImage='url(\'images/on-star.png\')';
					};
					document.getElementById('addFav').onmouseout=function(){
						this.style.backgroundImage='url(\'images/off-star.png\')';
					};
				}
			}
		},
		error : function(data, textStatus, jqXHR) {
			alert(jqXHR);
		},
		dataType : 'json'
	});
}
